import {
  IsInt,
  IsString,
  IsEnum,
  IsOptional,
  MaxLength,
  IsObject,
} from 'class-validator';
import { NotificationType } from '../entities/notification.entity';

/**
 * 创建通知 DTO
 */
export class CreateNotificationDto {
  /**
   * 接收者ID
   */
  @IsInt()
  userId: number;

  /**
   * 触发者ID（可选）
   */
  @IsInt()
  @IsOptional()
  triggerId?: number;

  /**
   * 通知类型
   */
  @IsEnum(NotificationType)
  type: NotificationType;

  /**
   * 通知标题
   */
  @IsString()
  @MaxLength(200, { message: '通知标题不能超过200字符' })
  title: string;

  /**
   * 通知内容
   */
  @IsString()
  @MaxLength(1000, { message: '通知内容不能超过1000字符' })
  content: string;

  /**
   * 关联数据（如作品ID、评论ID等）
   */
  @IsObject()
  @IsOptional()
  data?: Record<string, any>;
}
